#ifndef SWEGL_TEXTURE_H
#define SWEGL_TEXTURE_H

#include "swegl/common.h"
#include "swegl/surface.h"

#include <vector>

namespace swegl
{

class Texture
{	
public:
	Texture(uint width, uint height, uint numLevel);
	~Texture();

	size_t numSurfaces() const;

	Surface *surface(size_t index);
	const Surface *surface(size_t index) const;

private:
	std::vector<Surface *> m_surfaces;
};

inline size_t Texture::numSurfaces() const
{
	return m_surfaces.size();
}

inline Surface *Texture::surface(size_t index)
{
	sweglAssert(index < numSurfaces());
	return m_surfaces[index];
}

inline const Surface *Texture::surface(size_t index) const
{
	sweglAssert(index < numSurfaces());
	return m_surfaces[index];
}

}

#endif

